#pragma once

#include "Includes.h"
#include "Engine/RenderGlobals.h"
#include "../Texture/Texture2D.h"

class COMInterfaceBase
{
protected:
    mUInt m_uRenderTargetsCount;
    mBool m_bUseDepthStencil;

public:
    static COMInterfaceBase *CreateOMInterface ( );
    virtual ~COMInterfaceBase                  ( );
    virtual mVoid SaveCurrentRT                ( ) = 0;
    virtual mVoid RestoreRT                    ( ) = 0;
    virtual mVoid CreateRenderTarget           ( CTexture2D *a_pTexture[], mUInt a_uRenderTargetsCount ) = 0;
    virtual mVoid CreateDepthStencil           ( CTexture2D *a_pTexture ) = 0;
    virtual mVoid SetRenderTargets             ( ) = 0;
};

class COMInterface
{
protected:
    COMInterfaceBase *m_pOMInterface;
    COMInterface  ( );
    ~COMInterface ( );
};